{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p style=\"text-align: center;font-size: 33px;font-weight:bold;\"> <span style=\"color:DarkGoldenrod\">&lt;&lt; C程序的基本要素 &gt;&gt;</span></p>\n",
    "<p style=\"text-align: center;font-size: 25px;font-weight:bold;\"> <span style=\"color:Goldenrod\">&lt;&lt; Programming Basics using C Language  &gt;&gt;</span></p>\n",
    "<p style=\"text-align: right; font-size:15px; font-weight:normal\">----千里之行，基于硅步</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* **数据类型**\n",
    "* **C语句**\n",
    "* **数据的输入与输出**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基本数据类型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* **常量：** &nbsp;&nbsp;&nbsp;&nbsp; 程序中值不能被改变的量（程序不能改变，人可以通过修改源代码的方式调整）\n",
    "* **变量：** &nbsp;&nbsp;&nbsp;&nbsp; 程序中值能被改变的量  （回忆`伪代码`的的赋值符号$\\rightarrow$）\n",
    " * **数值变量** &nbsp;&nbsp;&nbsp;&nbsp; 存放具体数值\n",
    " * **枚举变量** &nbsp;&nbsp;&nbsp;&nbsp; 以自定义符号集合进行定义，存放自定义的符号\n",
    " * **指针变量** &nbsp;&nbsp;&nbsp;&nbsp; 存放`数值变量`的内存地址\n",
    "* **数组** "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 常量\n",
    "1. 通过`预编译`(`预处理`)指令进行定义。`编译器`在编译C代码的时候进行`符号替换`。\n",
    "2. 使用 const '常变量'定义符在`函数体`中定义"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "\n",
    "#define PI 3.141592657\n",
    "\n",
    "int main(){\n",
    "const float c_pi=3.141592657;\n",
    "printf(\"The value of PI is:%lf\\n\",PI);\n",
    "printf(\"The value of c_pi is:%lf\",c_pi);\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 理解`数值变量`的准备知识\n",
    "*  二进制正实数\n",
    " *  二进制正整数\n",
    " *  二进制小数\n",
    "* 定长二进制数\n",
    " *  原码\n",
    " *  反码\n",
    " *  补码\n",
    " *  移码"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**二进制正实数**（不精确的描述，康托尔的悲剧）<br>   \n",
    "* 二进制整数：逢二进一<br>\n",
    "* 二进制小数：小数点后n位的1代表$2^{-k}$<br>\n",
    "**例**<br>\n",
    "$4567 = 7 \\times 10^0 +6 \\times 10^1+5 \\times 10^2+ 4 \\times 10 ^3$ <br>\n",
    "$1011.1011=1\\times 2^0+1 \\times 2^1 +0 \\times 2^2 + 1 \\times 2^3 + 1 \\times 2^{-1}+ 0 \\times 2^{-2} +1 \\times 2^{-3} + 1 \\times 2^{-4}$<br>\n",
    "\n",
    "二进制数$s$到任意进制的转换：$F(s)=\\cdots +_{(D)} s_{-2} 2^{-2}+_{(D)}s_{-1} 2^{-1}+_{(D)}s_0 2^0+_{(D)}s_1 2^1+_{(D)}s_2 2^2+_{(D)}s_3 2^3+\\cdots$ \n",
    "<br>$+_{(D)}$：逢D进一，D为转换进制数）<br>\n",
    "**注：**  $2^5_{(10)}=32_{(10)}=40_{(8)}=20_{(16)}$<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "0.875(10)  0.875>0.5  1\n",
    "0.875 -0.5  0.375>0.25 1\n",
    "0.375-0.25  0.125=0.125\n",
    "0.875(10)=0.111(2)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "//3位二进制数代表1位8进制，4位二进制数代表1位16进制数。故计算机常用8进制或16进制记录数据，方便数值转换。\n",
    "//%cflags:-lm\n",
    "#include <stdio.h>\n",
    "#include <math.h>\n",
    "int main(){\n",
    "printf(\"32=%d(10)\\n\",32);     //输出十进制数32\n",
    "printf(\"32=%o(8)\\n\",32);       //输出十进制数32的8进制表达\n",
    "printf(\"32=%x(16)\\n\",32);     //输出十进制数32的16进制表达\n",
    "//\n",
    "//\n",
    "printf(\"40(8)=%d(10)\\n\",040);      //以前缀0标记数的进制为8\n",
    "printf(\"20(16)=%d(10)\\n\",0x20);  //以前缀0x标记数的进制为8\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 伪代码\n",
    "**示例:任意进制正整数的二进制转换**<br>\n",
    "<div style=\" overflow: hidden;\n",
    "    background-color: silver;\">\n",
    "<div style=\"display: inline-block;\n",
    "   position: relative;\n",
    "   left: 50%;\n",
    "   background-color: silver;\">\n",
    "    <div style=\"display: inline-block;\n",
    "    position: relative;\n",
    "    left: -50%;\n",
    "    width: 250px;\n",
    "    background-color: white;\">\n",
    "    <p style=\"text-align: left; font-size:15px; font-weight:normal;\">\n",
    "    输入`任意进制正整数`:   $D$<br>\n",
    "    设 `计数变量`:$0 \\rightarrow k$<br>\n",
    "    while $D>0$<br>\n",
    "    &nbsp;&nbsp;&nbsp;&nbsp;    2除$D$取余$\\rightarrow s_k$<br>\n",
    "    &nbsp;&nbsp;&nbsp;&nbsp;    2除$D$取整$\\rightarrow D$<br>\n",
    "    &nbsp;&nbsp;&nbsp;&nbsp;    $k+1 \\rightarrow k$<br>\n",
    "    输出 `二进制数` $s=s_{(k-1)}s_{(k-2)}\\cdots s_{(0)}$<br>\n",
    "    </p>\n",
    "    </div>\n",
    "    </div>\n",
    "    </div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**问1：**  $0.1_{(8)}=?_{(10)}$<br>\n",
    "**问2：**  $0.1_{(8)}=?_{(2)}$<br>\n",
    "**问3：**  $0.1_{(10)}=?_{(2)}$<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 伪代码\n",
    "**示例:任意进制小数的二进制转换**<br>\n",
    "<div style=\" overflow: hidden;\n",
    "    background-color: silver;\">\n",
    "<div style=\"display: inline-block;\n",
    "   position: relative;\n",
    "   left: 50%;\n",
    "   background-color: silver;\">\n",
    "    <div style=\"display: inline-block;\n",
    "    position: relative;\n",
    "    left: -50%;\n",
    "    width:250px;\n",
    "    background-color: white;\">\n",
    "    <p style=\"text-align: left; font-size:15px; font-weight:normal;\">\n",
    "    输入`任意进制小数`:   $D$<br>\n",
    "    初始化：$0_{(2)} \\rightarrow s$;$1 \\rightarrow k$<br>\n",
    "    设 `计数变量`:$0 \\rightarrow k$<br>\n",
    "    while $1$<br>\n",
    "    &nbsp;&nbsp;&nbsp;&nbsp;    当$D-s=0$:结束<br>\n",
    "    &nbsp;&nbsp;&nbsp;&nbsp;    当$D-s>0$:$s_{-k}=1$<br>\n",
    "    &nbsp;&nbsp;&nbsp;&nbsp;    当$D-s<0$:$s_{-k}=0$<br>\n",
    "    &nbsp;&nbsp;&nbsp;&nbsp;    $D-s_{-k} 2^{-k} \\rightarrow D$<br>\n",
    "    &nbsp;&nbsp;&nbsp;&nbsp;    $k+1 \\rightarrow k$<br>\n",
    "    输出 `二进制数` $s=s_{(-1)}s_{(-2)}\\cdots s_{(-k)}$<br>\n",
    "    </p>\n",
    "    </div>\n",
    "    </div>\n",
    "    </div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**问：上述算法存在什么问题？**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "####  定长二进制数\n",
    "计算机内部2进制数的表达受到`位数`的限制<br>\n",
    "例： 8位二进制数对于`整数`的表达范围为$-128 \\to 127$(整数分为正数与负数)\n",
    "\n",
    "8位二进制数对于`正数`的表达范围为$0 \\to 255$\n",
    "\n",
    "range(<u>&nbsp;&nbsp;</u>&nbsp;&nbsp;<u>&nbsp;&nbsp;</u>&nbsp;&nbsp;<u>&nbsp;&nbsp;</u>&nbsp;&nbsp;<u>&nbsp;&nbsp;</u>&nbsp;&nbsp;<u>&nbsp;&nbsp;</u>&nbsp;&nbsp;<u>&nbsp;&nbsp;</u>&nbsp;&nbsp;<u>&nbsp;&nbsp;</u>&nbsp;&nbsp;<u>&nbsp;&nbsp;</u>&nbsp;&nbsp;)=$2 \\times 2 \\times 2 \\times \\cdots$=$2^8$＝256\n",
    "\n",
    "从0数到255；从－128数到127统统都是256\n",
    "\n",
    "代码示例：\n",
    "```C\n",
    "signed char a=127,b=3,c;\n",
    "c=a+b;\n",
    "printf(\"%d\",c);\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "正整数的最高位（定长才成立）为0<br>\n",
    "负整数的最高位（定长才成立）为1<br>\n",
    "**问：8位二进制数1000&nbsp;&nbsp;0011代表-3吗？**<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "int main(){\n",
    "printf( \"%d\\n\" ,(signed char)0x83);\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "如上，答案是否定的。Why？（注意数字0）<br>\n",
    "因为：计算机内部`**负**整数`采用`补码`存放<br>\n",
    "**补码的生成： 将（-D）去号，转换为2进制数，然后各位取反，再加一** <br>\n",
    "0000&nbsp;&nbsp;0011 $\\rightarrow$1111&nbsp;&nbsp;1100(反码)$\\rightarrow$1111&nbsp;&nbsp;1101$\\rightarrow$0xFD"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "int main(){\n",
    "printf( \"%d\\n\" ,(signed char)0xFD);\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**回顾C语言的特性： 不做类型检查，语法灵活（好还是不好？因人而异）**<br>\n",
    "请看：C语言中的**符号溢出**与**数值溢出**现象！<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "int main(){\n",
    "/*例：符号位溢出*/\n",
    "signed   char a=127,b=3,c;\n",
    "c=a+b;// 变量c的最高位为1，具有负数符号位\n",
    "printf(\"%d\\n\",c); //与130（2）等效的补码（255（2）-130（2）+1（2））。 \n",
    "\n",
    "/*例：符号位溢出2*/\n",
    "a=-128;\n",
    "c=a+a;\n",
    "printf(\"%d\\n\",c);\n",
    "/*例：数值溢出1*/    \n",
    "unsigned char d=255,e=3,f;\n",
    "f=d+e;\n",
    "printf(\"%d\\n\",f);\n",
    "/*例：数值溢出2*/\n",
    "f=e-d;\n",
    "printf(\"%d\\n\",f);//3+255(作补)=4\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#溢出归纳\n",
    "1. 有符号整型发生上溢（运算结果超出类型表达的最大整数）有可能转换为补码形式的负数，此时最高位为1<br>\n",
    "2. 有符号整型发生下溢（运算结果超出类型表达的最小整数）有可能转换为原码形式的整数，此时最高为为0<br>\n",
    "3. 无符号整型发生上溢（超出数值表达范围）即转换为模K运算，K为`位限数`（如：8位二进制数的`位限数`为：256）<br>\n",
    "4. 无符号整型发生下溢（运算结果小于0）将减法转换为减数的补码，再作加法<br>\n",
    "**发生溢出的运算通通视为无效运算,无效运算在C语言中比比皆是,随处可见！**<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "### 变量"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* C语言中变量的定义方法： **变量类型** **变量名(集合)** <br>\n",
    "（`全局变量`（一般不使用）在`函数`外部，函数区域出现以前的区域进行定义!）<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "int a;\n",
    "int b,c,d;\n",
    "int main(){\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**注意1！！！作业中凡见全局变量，平时成绩直接减1分。**<br>\n",
    "**注意2！！！作业中凡见注释且文字描述合理，平时成绩会加分。**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**变量类型**  <br>\n",
    "符号含义：变量的定义域(整数域？实数域？字符域？正数域？)<br>\n",
    "物理含义: 变量在内存中所占`二进制字节数`<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "整数域的定义方式?(整型`int`，长整型`long`，`long long`长长整型)<br>\n",
    "主要区别在于物理含义(1,2,4,8字节数?) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据类型所占字节数越多，所表达的数值范围越大<br>\n",
    "1 byte(字节)=8位二进制（char,signed char, unsigned char）<br>\n",
    "2 bytes(字节)=16位二进制(short,unsigned short)<br>\n",
    "4 bytes(字节)=32位二进制(int,unsigned int)<br>\n",
    "8 bytes(字节)=64位二进制(long,long long, long int, unsigned long, unsigned long long, unsigend long int)<br>\n",
    "如何类推？  超出8字节需自己定义数据类型与运算操作<br>\n",
    "**再回顾，C语言中的特性：语法灵活，不作类型检查**<br>\n",
    "**附加思考：如何利用C语言的特性，满足自己的运算需要**<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h> \n",
    "#include <stdlib.h>\n",
    "#define P_T(T) printf(\"Type \"#T\" used %lu bytes\\n\",sizeof(T))\n",
    "int main(){\n",
    "P_T(char);// $-2^7 ~ 2^7-1$\n",
    "P_T(short); //$-2^15 ~ 2^15-1$\n",
    "P_T(int); //$-2^31 ~ 2^31-1$\n",
    "P_T(long);//$-2^63 ~ 2^63-1$\n",
    "P_T(long long); //undefined in C89\n",
    "P_T(unsigned char); //$0 ~ 2^8-1$\n",
    "P_T(unsigned short); //$0 ~ 2^16-1$\n",
    "P_T(unsigned int); //$0 ~ 2^32-1$\n",
    "P_T(unsigned long); //$0 ~ 2^64-1$\n",
    "P_T(unsigned long long);\n",
    "P_T(unsigned long long int);\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### C语言对于整型数据的定义： <br>\n",
    "最高为为0代表正数（0归为正数）<br>\n",
    "最高位为1代表负数 <br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### C语言中:$-k$使用$k$的补码进行存储\n",
    "* 原码：即正数所对应的二进制数&nbsp;&nbsp;&nbsp;&nbsp;7在8位二进制中为: 00000111 <br>\n",
    "* 反码: 即原码各位取反&nbsp;&nbsp;&nbsp;&nbsp;7在8位二进制中的反码为：11111000 <br>\n",
    "* 补码: 反码+1&nbsp;&nbsp;&nbsp;&nbsp;7在8位二进制中的补码为：11111001<br>\n",
    "假设我们定义：<br>\n",
    "```C\n",
    "int a=-7;\n",
    "```\n",
    "则a在内存为： 11111111 &nbsp;&nbsp;&nbsp;&nbsp;11111111 &nbsp;&nbsp;&nbsp;&nbsp;11111111 &nbsp;&nbsp;&nbsp;&nbsp;11111001<br>\n",
    "**注意：** &nbsp;&nbsp;&nbsp;&nbsp;a（int）所占字节数为4， 一个字节代表8位二进制"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### C语言中无符号（unsigned）整形最高位用来表达数值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "#include <stdlib.h>\n",
    "\n",
    "int main(){\n",
    "    int a =2147483647;\n",
    "    int b = a+1;\n",
    "    unsigned c =a*2;\n",
    "    printf(\"%d\\n\",a);\n",
    "    printf(\"%d\\n\",b);\n",
    "    printf(\"%u\\n\",b);\n",
    "    printf(\"%u\\n\",c);\n",
    "    return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### C语言对于实数类型的定义： <br>\n",
    "符号位（s）+阶码(e)+尾数(p)<br>\n",
    "$f=(-1)^s \\times 2^{e} \\times(1.p)$ (二进制)<br>\n",
    "尾数采用`原码`表达<br>\n",
    "`阶码`采用`移码`表达<br>\n",
    "`移码`=`补码`的最高位取反码？(存在疑问)<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于单**精度**`浮点`(**float**)数来说：<br>\n",
    "len(s) = 1 <br>\n",
    "len(p) = 23<br>\n",
    "len(s)+len(p) = 3 bytes=24 <br>\n",
    "len(e) = 1 byte =8<br>\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "1011 0101 >> 1 101 1010  -> 1111 1111 +1 = 1 0000 0000\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "//%cflags:-lm\n",
    "#include <stdio.h>\n",
    "#include <stdlib.h>\n",
    "#include <math.h>\n",
    "\n",
    "#define S -1\n",
    "#define J -20\n",
    "#define P 1.875\n",
    "int main(){\n",
    "//定义浮点数s的具体数值为-1*1.875*2^(-20)\n",
    "\n",
    "//验证该浮点数的符号位为1    \n",
    "float s = S*pow(2.0,J)*P;\n",
    "signed char* pcs= (signed char*) &s;\n",
    "printf(\"%d\\n\",pcs[sizeof(s)-1]>>7);//输出为1的补码。右移运算高位补1.\n",
    "\n",
    "//0000  1010 \n",
    "// 1111 0101 +1 = 1111 0110   \n",
    "//验证该浮点数的阶码为： 0111 0110（0xA8）\n",
    "\n",
    "//20的补码为：  1111 0101+1= 1111 0110   代表-20\n",
    "//浮点数s中以符号位后8位记录由20的补码产生的阶码    \n",
    "// 由补码产生阶码的过程：   补码的符号位取反\n",
    "// 由阶码产生补码的过程：   阶码的符号位取反\n",
    "int* si  = (int*) &s; //视s位32位整型\n",
    "int k = (*si)<<1;   //将s移一位，去掉符号位，确保最高8位为8位二进制数。\n",
    "signed char* pck= (signed char*) &k;  //使用8位二进制数的数据类型存入最高8位2进制数\n",
    "//按照阶码的定义: 1111 0110 最高位取反： 0111 0110  ->  pck[sizeof(s)-1]\n",
    "printf(\"%d\\n\",pck[sizeof(s)-1]-127);     //将阶码转换为补码并输出 \n",
    "\n",
    "//-127以127的补码形式转换为2进制数为： 1000 0001， 理论上最高位取反不是应该加： 1000 0000吗？\n",
    "//这涉及编译器的具体实现方式。 不同的编译器有可能不同。在此本不想予详细解释。\n",
    "    \n",
    "//不过咱们来猜他一猜 ： GCC默认行为为： 移码以反码的形式存储\n",
    "// 故pck[sizeof(s)-1]（阶码） 的真实值应该为： 20 的反码去掉符号位： 1111 0101去掉符号位 0111 0101\n",
    "//  由该值转换出20的补码应为：  该值符号位取反，再加一， 从而 应该加上1000 0001\n",
    "// 正好与127的补码相对应。 \n",
    "    \n",
    "//总结： 阶码的正确取法应为： 反码去掉符号位， 才可保留-0防止下溢。 或书上或网络释义存在疑问，我们以GCC为准。 \n",
    "//-0   0000 0000 各位取反得： 1111 1111   去掉符号位为： 0111 1111 (最小阶码)   \n",
    "    \n",
    "//验证该浮点数的尾码为0.875\n",
    "char* ss = (char*) &s;\n",
    "//0.875 = 0.5+0.25+0.125  = 2^(-1)+2^{-2}+2^{-3}=0.111\n",
    "//将0.111 去掉小数点与0 , 可验111(2)=7(10)  \n",
    "printf(\"%d\\n\",(ss[2]&0x7F)>>4); //解释7数字的由来\n",
    "//思考  ss[2]的含义，\n",
    "// 为什么要(>>4)将该数值向右移动4位？\n",
    "    \n",
    "/*老师突然觉得上述方法太笨了！*/\n",
    "printf(\"%d\\n\",  *((int*)&s)>>31);\n",
    "printf(\"%d\\n\",  ((char)((*((int*)&s)<<1)>>24)&0x7F)-127);\n",
    "printf(\"%d\\n\",  ((*((int*)&s)<<9)>>29)&0x7);    \n",
    "/*其实三行代码写了很久，学习提倡，工作可别这么写*/\n",
    "printf(\"%lf\\n\", floor(pow(2.0,24)));\n",
    "printf(\"%lf\\n\", floor(pow(2.0,53)));    \n",
    "}\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于双**精度**`浮点`数(**double**)来说:<br>\n",
    "len(s) = 1 <br>\n",
    "len(e) = 11<br>\n",
    "len(p) = 52<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "浮点数的绝对`有效位数`： <br>\n",
    "单精度浮点数(float)的`效对有效`位数为: floor($2^{23+1}$)的十进制位数=7<br>\n",
    "双精度浮点数(double)的`绝对有效`位数为：floor（$2^{52+1}$))的十进制位数=16<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### C语言对于字符数据的定义： <br>\n",
    "默认char为8位<u>二进制数</u>,具体数值与`ASCII`(American Standard Code for Information Interchange)字符编码相对应 <br>\n",
    "可定义有符号类型的字符变量，此时该类型的**实际含义为8位整型数据** <br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<table log-set-param=\"table_view\" class=\"table-view log-set-param\" data-sort=\"sortDisabled\"><tr><td width=\"63\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">Bin(二进制)</div>\n",
    "</td><td width=\"54\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\">Oct(八进制)</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">Dec(十进制)</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">Hex(十六进制)</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">缩写/字符</div>\n",
    "</td><td width=\"184\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">解释</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 0000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">0</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">NUT(null)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">空字符</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 0001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">1</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">1</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">SOH(start of headline)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">标题开始</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 0010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">2</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">2</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">02</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">STX (start of text)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">正文开始</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 0011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">3</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">3</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">03</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">ETX (end of text)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">正文结束</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 0100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">4</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">4</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">04</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">EOT (end of transmission)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">传输结束</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 0101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">5</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">5</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">05</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">ENQ (enquiry)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">请求</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 0110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">6</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">6</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">06</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">ACK (acknowledge)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">收到通知</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 0111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">7</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">7</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">07</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">BEL (bell)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">响铃</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 1000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">10</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">8</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">08</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">BS (backspace)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">退格</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 1001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">11</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">9</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">09</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">HT (horizontal tab)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">水平制表符</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 1010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">12</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">10</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0A</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">LF (NL line feed, new line)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">换行键</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 1011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">13</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">11</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0B</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">VT (vertical tab)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">垂直制表符</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 1100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">14</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">12</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0C</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">FF (NP form feed, new page)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">换页键</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 1101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">15</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">13</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0D</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">CR (carriage return)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">回车键</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 1110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">16</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">14</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0E</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">SO (shift out)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">不用切换</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0000 1111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">17</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">15</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0F</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">SI (shift in)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">启用切换</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 0000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">20</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">16</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">10</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">DLE (data link escape)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">数据链路转义</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 0001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">21</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">17</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">11</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">DC1 (device control 1)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">设备控制1</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 0010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">22</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">18</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">12</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">DC2 (device control 2)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">设备控制2</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 0011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">23</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">19</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">13</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">DC3 (device control 3)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">设备控制3</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 0100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">24</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">20</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">14</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">DC4 (device control 4)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">设备控制4</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 0101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">25</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">21</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">15</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">NAK (negative acknowledge)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">拒绝接收</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 0110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">26</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">22</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">16</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">SYN (synchronous idle)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">同步空闲</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 0111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">27</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">23</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">17</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">ETB (end of trans. block)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">结束传输块</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 1000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">30</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">24</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">18</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">CAN (cancel)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">取消</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 1001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">31</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">25</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">19</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">EM (end of medium)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">媒介结束</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 1010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">32</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">26</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">1A</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">SUB (substitute)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">代替</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 1011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">33</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">27</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">1B</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">ESC (escape)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">换码(溢出)</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 1100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">34</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">28</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">1C</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">FS (file separator)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">文件分隔符</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 1101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">35</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">29</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">1D</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">GS (group separator)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">分组符</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 1110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">36</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">30</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">1E</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">RS (record separator)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">记录分隔符</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0001 1111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">37</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">31</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">1F</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">US (unit separator)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">单元分隔符</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 0000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">40</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">32</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">20</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">(space)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">空格</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 0001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">41</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">33</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">21</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">!</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">叹号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 0010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">42</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">34</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">22</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">&quot;</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">双引号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 0011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">43</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">35</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">23</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">#</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">井号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 0100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">44</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">36</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">24</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">$</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">美元符</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 0101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">45</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">37</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">25</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">%</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">百分号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 0110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">46</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">38</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">26</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">&amp;</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">和号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 0111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">47</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">39</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">27</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">&#39;</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">闭单引号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 1000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">50</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">40</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">28</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">(</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">开括号</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 1001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">51</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">41</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">29</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">)</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\"><div class=\"para\" label-module=\"para\">闭括号</div>\n",
    "</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 1010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">52</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">42</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">2A</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">*</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">星号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 1011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">53</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">43</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">2B</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">+</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">加号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 1100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">54</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">44</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">2C</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">,</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">逗号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 1101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">55</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">45</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">2D</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">-</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">减号/破折号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0010 1110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">56</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">46</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">2E</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">.</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">句号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00101111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">57</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">47</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">2F</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">/</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">斜杠</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00110000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">60</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">48</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">30</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">0</div>\n",
    "</td><td width=\"182\" height=\"0\" align=\"center\" valign=\"middle\" colspan=\"1\">数字0</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00110001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">61</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">49</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">31</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">1</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">数字1</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00110010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">62</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">50</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">32</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">2</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">数字2</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00110011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">63</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">51</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">33</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">3</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">数字3</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00110100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">64</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">52</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">34</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">4</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">数字4</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00110101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">65</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">53</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">35</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">5</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">数字5</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00110110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">66</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">54</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">36</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">6</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">数字6</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00110111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">67</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">55</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">37</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">7</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">数字7</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00111000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">70</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">56</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">38</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">8</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">数字8</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00111001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">71</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">57</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">39</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">9</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">数字9</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00111010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">72</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">58</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">3A</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">:</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">冒号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00111011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">73</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">59</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">3B</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">;</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">分号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00111100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">74</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">60</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">3C</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">&lt;</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小于</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00111101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">75</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">61</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">3D</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">=</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">等号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00111110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">76</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">62</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">3E</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">&gt;</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大于</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">00111111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">77</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">63</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">3F</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">?</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">问号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01000000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">100</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">64</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">40</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">@</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">电子邮件符号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01000001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">101</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">65</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">41</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">A</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母A</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01000010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">102</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">66</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">42</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">B</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母B</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01000011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">103</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">67</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">43</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">C</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母C</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01000100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">104</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">68</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">44</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">D</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母D</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01000101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">105</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">69</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">45</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">E</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母E</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01000110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">106</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">70</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">46</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">F</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母F</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01000111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">107</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">71</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">47</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">G</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母G</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01001000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">110</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">72</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">48</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">H</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母H</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01001001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">111</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">73</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">49</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">I</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母I</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01001010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">112</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">74</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">4A</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">J</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母J</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01001011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">113</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">75</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">4B</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">K</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母K</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01001100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">114</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">76</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">4C</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">L</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母L</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01001101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">115</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">77</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">4D</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">M</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母M</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01001110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">116</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">78</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">4E</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">N</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母N</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01001111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">117</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">79</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">4F</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">O</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母O</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01010000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">120</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">80</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">50</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">P</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母P</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01010001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">121</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">81</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">51</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">Q</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母Q</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01010010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">122</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">82</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">52</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">R</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母R</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01010011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">123</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">83</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">53</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">S</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母S</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01010100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">124</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">84</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">54</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">T</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母T</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01010101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">125</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">85</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">55</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">U</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母U</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01010110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">126</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">86</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">56</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">V</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母V</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01010111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">127</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">87</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">57</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">W</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母W</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01011000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">130</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">88</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">58</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">X</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母X</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01011001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">131</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">89</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">59</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">Y</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母Y</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01011010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">132</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">90</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">5A</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">Z</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">大写字母Z</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01011011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">133</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">91</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">5B</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">[</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">开方括号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01011100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">134</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">92</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">5C</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">\\</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">反斜杠</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01011101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">135</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">93</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">5D</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">]</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">闭方括号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01011110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">136</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">94</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">5E</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">^</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">脱字符</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01011111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">137</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">95</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">5F</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">_</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">下划线</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01100000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">140</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">96</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">60</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">`</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">开单引号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01100001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">141</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">97</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">61</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">a</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母a</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01100010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">142</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">98</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">62</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">b</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母b</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01100011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">143</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">99</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">63</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">c</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母c</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01100100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">144</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">100</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">64</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">d</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母d</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01100101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">145</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">101</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">65</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">e</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母e</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01100110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">146</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">102</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">66</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">f</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母f</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01100111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">147</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">103</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">67</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">g</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母g</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01101000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">150</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">104</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">68</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">h</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母h</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01101001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">151</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">105</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">69</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">i</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母i</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01101010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">152</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">106</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">6A</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">j</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母j</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01101011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">153</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">107</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">6B</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">k</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母k</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01101100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">154</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">108</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">6C</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">l</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母l</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01101101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">155</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">109</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">6D</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">m</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母m</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01101110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">156</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">110</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">6E</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">n</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母n</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01101111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">157</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">111</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">6F</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">o</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母o</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01110000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">160</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">112</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">70</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">p</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母p</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01110001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">161</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">113</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">71</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">q</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母q</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01110010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">162</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">114</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">72</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">r</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母r</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01110011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">163</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">115</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">73</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">s</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母s</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01110100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">164</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">116</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">74</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">t</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母t</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01110101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">165</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">117</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">75</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">u</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母u</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01110110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">166</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">118</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">76</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">v</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母v</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01110111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">167</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">119</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">77</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">w</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母w</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01111000</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">170</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">120</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">78</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">x</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母x</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01111001</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">171</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">121</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">79</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">y</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母y</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01111010</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">172</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">122</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">7A</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">z</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">小写字母z</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01111011</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">173</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">123</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">7B</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">{</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">开花括号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01111100</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">174</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">124</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">7C</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">|</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">垂线</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01111101</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">175</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">125</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">7D</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">}</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">闭花括号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01111110</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">176</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">126</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">7E</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">~</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\">波浪号</td></tr><tr><td width=\"65\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">01111111</div>\n",
    "</td><td width=\"53\" align=\"center\" valign=\"middle\" colspan=\"1\" rowspan=\"1\"><div class=\"para\" label-module=\"para\">177</div>\n",
    "</td><td width=\"43\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">127</div>\n",
    "</td><td width=\"49\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">7F</div>\n",
    "</td><td width=\"178\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">DEL (delete)</div>\n",
    "</td><td width=\"182\" align=\"center\" valign=\"middle\"><div class=\"para\" label-module=\"para\">删除</div>\n",
    "</td></tr></table>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "int main(){\n",
    "for( unsigned char i=0;i<=127;i++)\n",
    "    if((i+1)%16==0) printf(\"\\n\");\n",
    "    else printf(\"%c (%x) \\t\",i,i);\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "int main(){\n",
    "char a;\n",
    "signed char b; //用于表达8位二进制整数用于与ASC2码产生对应关系（看键盘）！\n",
    "a = 126;\n",
    "b = 128;\n",
    "printf(\"%c\\n\",a);\n",
    "printf(\"%d\\n\",b);//可以看出GCC编译器定义char数据类型为有符号！\n",
    "printf(\"%c\\n\",b);//程序不报错，但进入死循环。可以看出GCC编译器对于查找字符的实现机制是采用循环！\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**char**既可以代表8位二进制整型， 又可以代表字符。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### C语言中的枚举类型（与switch-case 分支语句乃天作之和）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "int main(){\n",
    "enum{mon,tue,wed,thu,fri,sat,sun} weekday ;  //我们定义了枚举类型weekday, weekay的值只能取mon,tue,wed,thu,fri,sat,sun\n",
    "weekday=7;    \n",
    "\n",
    "//printf(\"%d\\n\",mon);\n",
    "//printf(\"%d\\n\",tue);    \n",
    "\n",
    "\n",
    "switch(weekday){\n",
    "case mon:  printf(\"Today is Monday!\\n\");break;\n",
    "case tue:     printf(\"Today is Tuesday!\\n\");break;\n",
    "case wed:   printf(\"Today is Wednesday!\\n\");break;\n",
    "case thu:     printf(\"Today is Thursday!\\n\");break;\n",
    "case fri:       printf(\"Today is Friday!\\n\");break;\n",
    "case sat:     printf(\"Today is Saturaday!\\n\");break;\n",
    "case sun:    printf(\"Today is Sunday!\\n\");break;\n",
    "default:  printf(\"value of weekday undefined !\\n\");\n",
    "}\n",
    "printf(\"%ld\",sizeof(weekday));\n",
    "\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "typedef enum{mon,tue,wed,thu,fri,sat,sun} weekdays;  // 全局数据类型定义， weekdays代表？\n",
    "int main(){\n",
    "weekdays weekday;  //定义与weekdays等价类型的变量weekday;\n",
    "weekday=tue;   \n",
    "switch(weekday){\n",
    "case mon:  printf(\"Today is Monday!\\n\");break;\n",
    "case tue:     printf(\"Today is Tuesday!\\n\");break;\n",
    "case wed:   printf(\"Today is Wednesday!\\n\");break;\n",
    "case thu:     printf(\"Today is Thursday!\\n\");break;\n",
    "case fri:       printf(\"Today is Friday!\\n\");break;\n",
    "case sat:     printf(\"Today is Saturaday!\\n\");break;\n",
    "case sun:    printf(\"Today is Sunday!\\n\");break;\n",
    "default:  printf(\"value of weekday undefined !\\n\");\n",
    "}\n",
    "printf(\"%ld\",sizeof(weekday));\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "#define weekdays enum{mon,tue,wed,thu,fri,sat,sun} // 使用宏替换预处理(编译)指令定义enum数据类型\n",
    "int main(){\n",
    "weekdays weekday ;  //定义与weekdays等价类型的变量weekday;\n",
    "weekday=tue;   \n",
    "switch(weekday){\n",
    "case mon:  printf(\"Today is Monday!\\n\");break;\n",
    "case tue:     printf(\"Today is Tuesday!\\n\");break;\n",
    "case wed:   printf(\"Today is Wednesday!\\n\");break;\n",
    "case thu:     printf(\"Today is Thursday!\\n\");break;\n",
    "case fri:       printf(\"Today is Friday!\\n\");break;\n",
    "case sat:     printf(\"Today is Saturaday!\\n\");break;\n",
    "case sun:    printf(\"Today is Sunday!\\n\");break;\n",
    "default:  printf(\"value of weekday undefined !\\n\");\n",
    "}\n",
    "printf(\"%ld\",sizeof(weekday));\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**第一段代码： 在函数体内部定义数据类型，只在定义了该类型的函数体内，该类型可用。**<br>\n",
    "**typedef 编译器友好！在函数体外部，且在任意函数出现前定义数据类型，全局可用。**<br>\n",
    "**#define 李老师的即兴之作！与第一段代码基本等价， 然而会导致 weekdays数据类型在不同的函数中被重复定义！**<br>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 指针数据类型与指针变量\n",
    "在变量的声明中，凡在变量明前出现* 号，意味着定义了一个指针变量。 <br>\n",
    "以* 结尾的类型声明为 声明指针数据类型<br>\n",
    "指针的含义： 具有指向性的变量，真值为内存地址。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "char*  a;  // 以字符指针类型定义了变量a。  \n",
    "char  *b;   //等价，但是很不好看且释义不清。     "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "int main(){\n",
    "char* a;   //未赋值的指针为野指针，不知道指到哪里去\n",
    "char b='A'; // 定义且初始话字符变量b为'A' \n",
    "printf(\"The value of variable b is %c\\n\",b);\n",
    "\n",
    "char c;\n",
    "c = b;  //将b对c赋值，c今后的赋值与b无关\n",
    "c = 'D';\n",
    "printf(\"The value of variable b is still %c\\n\", b);\n",
    "\n",
    "\n",
    "a = &b ; //对指针变量进行赋值， 令且为变量b的内存地址（该地址的作为范围为main函数）。\n",
    "*a = 'C'; // 令编译器根据指针变量a的地址找到对应的内存区间， 由于该指针类型为char*故为8位二进制数。即变量b的内存区间。\n",
    "printf(\"The value of variable b is %c now, changed by *a\\n\",b); //我们虽然没有直接改变b的值，但是通过指针变量间接改变了b的值。\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h> \n",
    "#include <stdlib.h>\n",
    "#define P_T(T) printf(\"Type \"#T\" used %lu bytes\\n\",sizeof(T))\n",
    "int main(){\n",
    "P_T(char*); \n",
    "P_T(short*); \n",
    "P_T(int*); \n",
    "P_T(long*);\n",
    "P_T(long long*);\n",
    "P_T(unsigned char*);\n",
    "P_T(unsigned short*);\n",
    "P_T(unsigned int*); \n",
    "P_T(unsigned long*); \n",
    "P_T(unsigned long long*);\n",
    "P_T(unsigned long long int*);\n",
    "P_T(char**);    \n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "全部为8字节64位二进制数定义的数据类型。<br>\n",
    "从而我们可以得到gcc默认内存寻址范围为： [0,$2^{64}-1$] <br>\n",
    "在真实情况下，必须考虑内存的大小<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#指针运算\n",
    "可理解为内存区间的位移"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "int main(){\n",
    "char a;\n",
    "short b;\n",
    "int c;\n",
    "double d;\n",
    "char* pa = &a;\n",
    "short* pb = &b;\n",
    "int* pc = &c;\n",
    "double* pd = &d;\n",
    "\n",
    "printf(\"the value of pa is %x, the value of pa+1 is %x\\n\",pa,pa+1);\n",
    "printf(\"the value of pb is %x, the value of pb+1 is %x\\n\",pb,pb+1);\n",
    "printf(\"the value of pc is %x, the value of pc+1 is  %x\\n\",pc,pc+1);\n",
    "printf(\"the value of pd is %x, the value of pd+1 is %x\\n\",pd,pd+1);\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 结论： \n",
    "1. gcc编译器以1个字节为单位对内存进行排址\n",
    "2. 连续定义的，不同类型的变量占用连续的内存空间\n",
    "3. 指针变量的+1 操作与变量类型的声明相关。\n",
    "4. 指向变量a的指针，通过+操作可指向变量b,c,d."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数组\n",
    "1. 内存占用连续的同类型变量集合，以下标[]区分不同的组内变量\n",
    "2. 数组定义时， 下标只能为>=1的正整数，代表定义多少个组内变量\n",
    "3. 数组使用时， 下标n代表第n+1个组内变量\n",
    "4. 数组变量名与指针变量名同样代表内存地址， 然而指针变量可变，数组变量不可变\n",
    "5. 数组变量名可参与运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#include <stdio.h>\n",
    "#define P_T(T) printf(\"array \"#T\" used %lu bytes\\n\",sizeof(T))\n",
    "int main(){\n",
    "\n",
    "char w[100];\n",
    "w[0]='a';\n",
    "w[1]='b';\n",
    "w[2]='c';    \n",
    "/*\n",
    "for(int i=0;i<100;i++) w[i]=0;    \n",
    "for(int i=0;i<100;i++){\n",
    "    printf(\"%d  \",w[i]);\n",
    "    if((i+1)%10==0) printf(\"\\n\");\n",
    "}*/\n",
    "    printf(\"%x\\n\",w);\n",
    "    printf(\"%c\\n\",*(w+1));\n",
    "\n",
    "    /*\n",
    "w[0] [1]\n",
    "char a[]={1,2,3,4,5};\n",
    "short b[]={1,2,3,4,5};\n",
    "int c[]={1,2,3,4,5};\n",
    "double d[]={1.0,2.0,3.0,4.0,5.0};\n",
    "P_T(a);\n",
    "P_T(b);\n",
    "P_T(c);\n",
    "P_T(d);\n",
    "*/\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "### 至此，我们其实可以做很多事情\n",
    "例：采用选择、插入、冒泡排序算法对数组排序\n",
    "例：采用堆排序算法对数组进行排序\n",
    "例：采用快速排序算法对数组进行排序\n",
    "例: 采用Gauss-Siedal算法求解线性方程组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "// 选择排序法\n",
    "#include <stdio.h>\n",
    "void print_n(int* arr, int n){\n",
    "for(int i=0;i<n;i++) printf(\"%d  \",arr[i]);\n",
    "printf(\"\\n\");\n",
    "}\n",
    "void selectn(int* arr,int n){\n",
    "for(int i=0;i<n;i++)\n",
    "if(arr[i]>arr[n]){\n",
    "int temp = arr[i];\n",
    "arr[i]   = arr[n];\n",
    "arr[n]     = temp;\n",
    "} \n",
    "}\n",
    "int main(){\n",
    "int arr[17]={45,23,12,-15,76,34,77,23,-66,34,89,20,33,56,79,-21,-3};\n",
    "for(int n=16;n>=0;n--)\n",
    "{\n",
    "selectn(arr,n);\n",
    "print_n(arr,17);\n",
    "}\n",
    "return 0;\n",
    "}\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "//插入排序法\n",
    "#include <stdio.h>\n",
    "void swap(int* a, int*b){\n",
    "int tmp = *a;\n",
    "*a      = *b;\n",
    "*b      = tmp;\n",
    "}\n",
    "void print_n(int* arr, int n){\n",
    "for(int i=0;i<n;i++) printf(\"%d  \",arr[i]);\n",
    "printf(\"\\n\");\n",
    "}\n",
    "void insertn(int* arr,int n,int N){\n",
    "for(int j=n;j<(N-1);j++)\n",
    "if(arr[j]>arr[j+1])\n",
    "swap(&arr[j],&arr[j+1]);\n",
    "}\n",
    "\n",
    "\n",
    "int main(){\n",
    "int arr[17]={45,23,12,-15,76,34,77,23,-66,34,89,20,33,56,79,-21,-3};\n",
    "for(int n=16;n>=0;n--)\n",
    "{\n",
    "insertn(arr,n,17);\n",
    "print_n(arr,17);\n",
    "}\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "//冒泡排序法\n",
    "#include <stdio.h>\n",
    "void swap(int* a, int*b){\n",
    "int tmp = *a;\n",
    "*a      = *b;\n",
    "*b      = tmp;\n",
    "}\n",
    "void print_n(int* arr, int n){\n",
    "for(int i=0;i<n;i++) printf(\"%d  \",arr[i]);\n",
    "printf(\"\\n\");\n",
    "}\n",
    "void bubble(int* arr,int n){\n",
    "for(int i=0;i<n;i++)\n",
    "if(arr[i]>arr[i+1]) swap(&arr[i],&arr[i+1]);\n",
    "}\n",
    "int main(){\n",
    "int arr[17]={45,23,12,-15,76,34,77,23,-66,34,89,20,33,56,79,-21,-3};\n",
    "for(int n=16;n>=0;n--)\n",
    "{\n",
    "bubble(arr,n);\n",
    "print_n(arr,17);\n",
    "}\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "//堆排序\n",
    "#include <stdio.h>\n",
    "void swap(int* a, int*b){\n",
    "int tmp = *a;\n",
    "*a      = *b;\n",
    "*b      = tmp;\n",
    "}\n",
    "void adjust_heap(int* arr, int top,int N){\n",
    "int tmp = arr[top];\n",
    "for(int j=top*2+1;j<N;j=j*2+1){\n",
    "if(arr[j]<arr[j+1]&&(j+1)<N) j++;\n",
    "if(tmp<arr[j]){ \n",
    "arr[top]=arr[j];\n",
    "top = j;\n",
    "}else break;\n",
    "}\n",
    "arr[top] = tmp;\n",
    "\n",
    "}\n",
    "void create_heap(int* arr, int N){\n",
    "for(int i=N/2-1;i>=0;i--) adjust_heap(arr,i,N);\n",
    "}\n",
    "void print_n(int* arr, int n){\n",
    "for(int i=0;i<n;i++) printf(\"%d  \",arr[i]);\n",
    "printf(\"\\n\");\n",
    "}\n",
    "int main(){\n",
    "int arr[17]={45,23,12,-15,76,34,77,23,-66,34,89,20,33,56,79,-21,-3};\n",
    "create_heap(arr,17);\n",
    "//printf(\"%d\",arr[0]);\n",
    "\n",
    "for(int n=17;n>1;n--)\n",
    "{\n",
    "swap(&arr[0],&arr[n-1]);\n",
    "adjust_heap(arr,0,n-1);\n",
    "print_n(arr,17);\n",
    "}\n",
    "\n",
    "return 0;\n",
    "}\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "//快速排序\n",
    "void swap(int* a, int*b){\n",
    "int tmp = *a;\n",
    "*a      = *b;\n",
    "*b      = tmp;\n",
    "}\n",
    "#include <stdio.h>\n",
    "void print_n(int* arr, int n){\n",
    "for(int i=0;i<n;i++) printf(\"%d  \",arr[i]);\n",
    "printf(\"\\n\");\n",
    "}\n",
    "int put_last(int*arr, int left ,int right){\n",
    "int i=left,j=right,tmp=arr[i];\n",
    "while(i<j){\n",
    "while(i<j&&arr[j]>=tmp){j--;}; arr[i]=arr[j];\n",
    "while(i<j&&arr[i]<=tmp){i++;}; arr[j]=arr[i];\n",
    "}\n",
    "arr[i]=tmp;\n",
    "return i;\n",
    "}\n",
    "void quick_sort(int* arr, int left,int right){\n",
    "if(left<right){\n",
    "int b = put_last(arr,left,right);\n",
    "quick_sort(arr,left,b-1);\n",
    "quick_sort(arr,b+1,right);\n",
    "}\n",
    "}\n",
    "\n",
    "int main(){\n",
    "int arr[17]={45,23,12,-15,76,34,77,23,-66,34,89,20,33,56,79,-21,-3};\n",
    "quick_sort(arr,0,16);\n",
    "print_n(arr,17);\n",
    "return 0;\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "//%cflags:-lm\n",
    "//Gauss-Seidal 高斯-塞尔德算法（示意而已！）\n",
    "#include <stdio.h>\n",
    "#include <math.h>\n",
    "#include <malloc.h>\n",
    "void Gauss_Siedal1(const float (*A)[5],const float* Y,float* x,int K){\n",
    "float s=0;\n",
    "for(int i=0;i<K;i++){\n",
    "    for(int j=0;j<K;j++){\n",
    "        if(!(j==i)) s+=A[i][j]*x[j];\n",
    "    }\n",
    "    x[i]= (Y[i]-s)/A[i][i];\n",
    "    s   = 0;\n",
    "    }\n",
    "}\n",
    "\n",
    "float evalue_AXY(const float (*A)[5],const float* Y,float* x,int K){\n",
    "    float sum  = 0;\n",
    "    float s    = 0;\n",
    "    for(int i=0;i<K;i++){\n",
    "        for(int j=0;j<K;j++) s+=A[i][j]*x[j];\n",
    "        s    = pow(Y[i]-s,2);\n",
    "        sum += s;\n",
    "        s    = 0;\n",
    "    }\n",
    "    return sum;\n",
    "}\n",
    "\n",
    "\n",
    "int main(){\n",
    "    float A[][5] ={{5.7,0.5,0.7,2.3,4.4},\n",
    "                  {0.5,5.7,0.3,0.2,3.6},\n",
    "                  {0.7,0.3,5.7,0.3,1.5},\n",
    "                  {2.3,0.2,0.3,5.7,0.7},\n",
    "                  {4.4,3.6,1.5,0.7,5.7}};\n",
    "    float Y[]   = {0.5,1.1,2.4,4.5,0.2};\n",
    "    \n",
    "    float *x    = (float*)malloc(sizeof(float)*5);\n",
    "    for(int i=0;i<5;i++) x[i]=0;\n",
    "    float eval;\n",
    "    for(int i=0;i<100;i++){\n",
    "    Gauss_Siedal1(A,Y,x,5);\n",
    "    eval = evalue_AXY(A,Y,x,5);\n",
    "    printf(\"x is \");\n",
    "    for(int j=0;j<5;j++) printf(\"%f \", x[j]);\n",
    "    printf(\"\\n\");\n",
    "    printf(\"|| Y-Ax||^2 is %f after %d iteration!\\n\",eval,i+1);    \n",
    "    }\n",
    "    free(x);\n",
    "    return 0;\n",
    "}\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 作业\n",
    "1. 将选择、插入、冒泡、堆排序算法；高斯-塞尔德算法的演示代码进行函数封装。\n",
    "2. 选择一个排序算法，写出算法的伪代码或流程图。\n",
    "3. 查阅希尔排序，写出C语言的代码。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "// 求最大公约数\n",
    "// 辗转相除法（欧几里德算法）\n",
    "#include <stdio.h>\n",
    "int gcd(int a, int b){ // greatest common divisor\n",
    "    if(a%b==0) return b;\n",
    "    else return gcd(b,a%b);\n",
    "}                      \n",
    "int main(){\n",
    "    printf(\"the gcd of (%d,%d) is %d\", 1169,459,gcd(162,72));\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "//归并排序法 效率仅次于快排，但应用广泛，为多种编成语言的默认排序方法（Bottom up？ 自顶向下好理解，自底向上真实用！）\n",
    "#include <stdio.h>\n",
    "#include <malloc.h>\n",
    "#define MIN(a,b) a<b?a:b //宏定义条件判断表达式\n",
    "void print_n(int* arr, int n){\n",
    "for(int i=0;i<n;i++) printf(\"%d  \",arr[i]);\n",
    "printf(\"\\n\");\n",
    "}\n",
    "\n",
    "void merge(int* arr1, int* arr2, int s, int m, int t){ \n",
    "//将有序数组A=arr1[s~m-1],B=arr1[m~t-1]合并为有序数组arr2[s~t-1]\n",
    "if(m!=t){\n",
    "int pl=s; //pl指向数组A=arr1[s~m-1]中首个 **未移动到数组C=arr2[s~t-1]中的元素** 的序数\n",
    "int pr=m; //pr指向数组B=arr1[m~t-1]中首个 **未移动到数组C=arr2[s~t-1]中的元素** 的序数\n",
    "for(int i=s;i<t;i++) {// 处理合并两个数组的情况;A,B不一定等长\n",
    "if((m-pl)==0&&(t-pr)>0) {arr2[i]=arr1[pr++];continue;} \n",
    "// 判断数组A=arr1[s~m-1]中的元素是否已经完全移出,如果是将B=arr1[m~t-1]中的剩余数全部移出到到数组C\n",
    "if((t-pr)==0&&(m-pl)>0) {arr2[i]=arr1[pl++];continue;} \n",
    "// 判断数组B=arr1[m~t-1]中的元素是否已经完全移出,如果是将A=arr1[s~m-1]中的剩余数全部移出到到数组C\n",
    "arr2[i]=(arr1[pl]<arr1[pr])?arr1[pl++]:arr1[pr++];\n",
    "}\n",
    "}else{\n",
    "for(int i=s;i<t;i++) arr2[i]=arr1[i]; //处理尾端只剩一个数组的情况,直接按序赋值\n",
    "}\n",
    "}\n",
    "\n",
    "void Merge_Sort(int** arr1, int** arr2,int N){\n",
    "for(int len=1;len<N;len*=2)\n",
    "{\n",
    "for(int i=0;i<N;i+=(2*len)) merge(*arr1,*arr2,i,MIN(i+len,N),MIN(i+2*len,N)); \n",
    "// 分段合并有序序列并考虑以下两种情况\n",
    "// 1. i+len<N; 2. 1+2len<N\n",
    "// 第一种情况： 分段后，数组尾端只剩一个数组\n",
    "// 第二种情况： 分段后，数组尾端有两个数组，但不等长。\n",
    "int* tmp    =  *arr1;\n",
    "*arr1       =  *arr2;\n",
    "*arr2       =   tmp;\n",
    "print_n(*arr1,17);\n",
    "}\n",
    "}\n",
    "void main(){\n",
    "int arr[17]={45,23,12,-15,76,34,77,23,-66,34,89,20,33,56,79,-21,-3};\n",
    "int arr1[17];\n",
    "int* parr1 = arr;\n",
    "int* parr2 = arr1;\n",
    "Merge_Sort(&parr1,&parr2,17);\n",
    "}\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "C",
   "language": "c",
   "name": "c"
  },
  "language_info": {
   "file_extension": ".c",
   "mimetype": "text/plain",
   "name": "c"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
